草庐IT

LeetCode - 两数之和

全部标签

java - leetcode 单数 II

leetcode关于单数II的题目是:给定一个整数数组,除一个元素外,每个元素出现三次。找到那一个。笔记:您的算法应该具有线性运行时复杂度。你能在不使用额外内存的情况下实现它吗?其实我已经从网站上找到了解决方案,解决方案是:publicintsingleNumber(int[]A){intone=0,two=0;for(inti=0;i但是,我不知道为什么这段代码可以运行,其实我也不知道我第一次看到这个问题的时候是怎么想的?任何帮助。谢谢! 最佳答案 所以,我遇到了一些编码问题并在这个问题上坚持了很长一段时间,在对谷歌进行了大量研究

小米面试题——不用加减乘除计算两数之和

前言(1)刷B站看到一个面试题,不用加减乘除计算两数之和。(2)当时我看到这个题目,第一反应就是感觉这是一个数电题目。不过需要采用C语言的方式编写出来。(3)不过看到大佬的代码之后,感觉自己的思想还是太局限了。利用数电知识解题(1)当时我看到这个题目,第一想法就是画出逻辑电路图,分析过程我就不赘述了。感兴趣的可以看【硬件科普】带你认识CPU第02期——CPU是怎么计算加法的(上)这个视频讲解(2)根据上图,于是我们可以知道,需要一个当前值a和b,一个输入的进位值carry_bit。最终输出数据S和进位符号carry_bit。注意:carry_bit是进位符号,所以他每次计算的时候,需要左移1位

每天一道leetcode:1926. 迷宫中离入口最近的出口(图论&中等&广度优先遍历)

今日份题目:给你一个mxn的迷宫矩阵maze(下标从0开始),矩阵中有空格子(用'.'表示)和墙(用'+'表示)。同时给你迷宫的入口entrance,用entrance=[entrancerow,entrancecol]表示你一开始所在格子的行和列。每一步操作,你可以往上,下,左或者右移动一个格子。你不能进入墙所在的格子,你也不能离开迷宫。你的目标是找到离entrance最近的出口。出口的含义是maze边界上的空格子。entrance格子不算出口。请你返回从entrance到最近出口的最短路径的步数,如果不存在这样的路径,请你返回-1。示例1输入:maze=[["+","+",".","+"]

每天一道leetcode:797. 所有可能的路径(图论&中等&深度优先遍历)

今日份题目:给你一个有n个节点的有向无环图(DAG),请你找出所有从节点0到节点n-1的路径并输出(不要求按特定顺序)graph[i]是一个从节点i可以访问的所有节点的列表(即从节点i到节点graph[i][j]存在一条有向边)。示例1输入:graph=[[1,2],[3],[3],[]]输出:[[0,1,3],[0,2,3]]解释:有两条路径0->1->3和0->2->3示例2输入:graph=[[4,3,1],[3,2,4],[3],[4],[]]输出:[[0,4],[0,3,4],[0,1,3,4],[0,1,2,3,4],[0,1,4]]提示n==graph.length20graph

Day10|LeetCode232.用栈实现队列、LeetCode 225. 用队列实现栈

栈和队列理论基础:队列是先进先出,栈是先进后出。如图所示:栈和队列是STL(C++标准库)里面的两个数据结构。栈是以底层容器完成其所有的工作,对外提供统一的接口,底层容器是可插拔的(也就是说我们可以控制使用哪种容器来实现栈的功能)。 栈的内部结构,栈的底层实现可以是vector,deque,list都是可以的,主要就是数组和链表的底层实现。如图所示:我们常用的SGISTL,如果没有指定底层实现的话,默认是以deque为缺省情况下栈的底层结构。  LeetCode232.用栈实现队列题目链接:232.用栈实现队列-力扣(LeetCode)视频链接:栈的基本操作!|LeetCode:232.用栈实

Leetcode.322-零钱兑换(最大/小型动态规划)

322.零钱兑换目录第一步:确定状态第二步:确定初始状态和边界条件第三步:计算顺序递归的计算问题代码思路动态规划适用于:最大/小值,可不可行,计数问题这类集中场景本题,求解是否可以由指定面值的硬币完成兑换且统计最少需要的硬币的数量,可以使用动态规划来求解。动态规划 -子问题状态的定义 -状态转移方程 -整个问题的初始状态 -问题的边界条件第一步:确定状态动态规划是可以将大问题分解成子问题,利用子问题的结果来求解大问题,所以首先要确定状态。要从问题的最后一步和子问题的角度开始思考如果能完全找零,那么假设最后一个找零的硬币的面值为k,则问题由找出11金额的最少硬币数量的问题,变成找出11-k的最少

每天一道leetcode:1129. 颜色交替的最短路径(图论&中等&广度优先遍历)

今日份题目:给定一个整数n,即有向图中的节点数,其中节点标记为0到n-1。图中的每条边为红色或者蓝色,并且可能存在自环或平行边。给定两个数组redEdges和blueEdges,其中:redEdges[i]=[ai,bi]表示图中存在一条从节点ai到节点bi的红色有向边,blueEdges[j]=[uj,vj]表示图中存在一条从节点uj到节点vj的蓝色有向边。返回长度为n的数组answer,其中answer[X]是从节点0到节点X的红色边和蓝色边交替出现的最短路径的长度。如果不存在这样的路径,那么answer[x]=-1。示例1输入:n=3,red_edges=[[0,1],[1,2]],bl

LeetCode46全排列(回溯入门)

欢迎访问我的GitHub这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos题目描述难度:中等给定一个不含重复数字的数组nums,返回其所有可能的全排列。你可以按任意顺序返回答案示例1输入:nums=[1,2,3]输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示例2输入:nums=[0,1]输出:[[0,1],[1,0]]示例3输入:nums=[1]输出:[[1]]个人回溯和46题的理解在很多刷题文章和书籍中,此题都被用做回溯算法的第一题,可见该题很有代表性,搞定此题意味

【leetcode刷题】--- 我遇到一道很坏很坏的题~

🔥系列专栏:【Leetcode】刷题与总结目录前言题目普通解法🌱思路一🌱思路二其他解法🌱思路三🌱思路四写在最后前言今天在Leetcode上刷题,看到一道题很有趣。我乍一看,没有思路,但是仔细想了想,还是没思路。。。。哈哈,开个玩笑。当我写出后解法后,系统老是提醒超出时间限制,太难了,努力想了好久,优化解法后终于通过了!还挺有成就感。后来在官方的解法中,我又学到了其他的解题方法,解题的思路非常棒,所以就有了这篇文章,想和大家分享一下。题目✨描述:给定一个数组height,数组里有n个非负整数每个元素都表示一个宽度为1的柱子的高度现在让我们来计算按此排列的柱子,下雨之后能接多少雨水。🔋例如:输入:

leetcode刷题之消失的数字(超详解刷爆力扣)

大家好啊,我是小生啊🙈🙈🙈从今天开始小生将会和大家一起刷题,从今天开始小生也会开辟新的专栏。😜😜😜下一篇比这篇质量高多啦,哈哈,大家快来看啦~~~多种方法刷爆力扣———轮转数组🥳🥳🥳.🌞🌞🌞让我们多种方法解题练习,刷爆力扣,冲冲冲力扣练习:消失的数字🏃🏃🏃一.🏠题目描述二.🏠题目分析三.🏠解决方法1.🚀思路一:先排序再查找2.🚀思路二:逆推相减3.🚀思路三:异或运算求解四.🏠代码实现1.🚀方法一代码详解2.🚀方法二代码详解五.🏠结语一.🏠题目描述兄弟们,废话不多说直接看题:🙉🙉🙊示例1:输入:[3,0,1]输出:2示例2:输入:[9,6,4,2,3,5,7,0,1]输出:8二.🏠题目分析这道题